「什麼是 legacy code?」
#修改代碼的藝術 #讀書心得 #LegacyCode
什麼是 legacy code? 已存在但很難改好的程式碼就是 legacy code。
「很難改好」由兩個部分組成。
第一個部分「很難改」,指的是程式碼的可讀性與可維護性很差。另一個部分「很難好」,指的是改完不知道對不對。
Michael Feathers 著重在第二點,也就是當某一段 production code 沒有測試保護,不管它原本寫得多好,物件導向跟封裝設計地再好,對於接手修改的人員來說,仍然存在著改完不知道有沒改對的情況。這樣會使得後續接手人員綁手綁腳,浪費許多時間與重工成本。
反之,如果一段程式碼有對應的測試程式保護,只要這一點成立,要把程式重構以滿足第一點,也就是滿足可讀性與可維護性,也就沒什麼困難的,因為已經有測試程式當保護網。
而這一點,也是 TDD 最前面該建立的觀念,因為開發工法一連串的演進,都是從這裡開始的。